<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

// 构造unshit函数：
// 向数组的开头添加一个或更多的元素，并返新的长度
// 向数组插入元素以后，其他的元素索引会依次调整


function array_unshit (arr){
if(arr==undefined || arr.constructor!==Array) throw new Error("参数错误");
if(arguments.length===1) return arr.length;
var len=arguments.length-1;
arr.length=len=len+arr.length;
while(len>0){
    if(len>arguments.length-1){
        arr[len-1]=arr[len-arguments.length];

    }else{
        arr[len-1]=arguments[len];
    }
    len--
}
return arr.length;
    
}
var arr = [1,2,3,4]
array_unshit(arr,-1,0)
console.log(arr);


// 1-为什么len=arguments.length-1;因为前边有arr
// 2-len是需要添加元素的个数
// 3- arr.length=len=len+arr.length;两个长度相加
// 4-进行区分长度，长度递减，判断后进行位置移动


    </script>
</body>
</html>